Digital signals produced by computer systems are often converted to analog voltages to drive user interfaces such as cathode-ray tube (CRT) displays. Many kinds of digital-to-analog converters (DACs) are known and used. One common type drives a variable current through a fixed resistance to produce a variable voltage across the resistor. The current and thus the voltage are varied by switching on or off many current sources. The precision of the DAC is determined by the size of the smallest current source that can be switched.
FIG. 1 illustrates a common 8-bit DAC. An 8-bit digital value is encoded with a binary value from 0 to 255, representing a digitized voltage. Decoder 12 fully decodes the 8-bit binary value into 255 signals that are output to bus 16. These 255 signals control 255 switchable current sources. As more of the current sources are switched on, the current output on line 14 increases, increasing the voltage across a resistance. For example, when the 8-bit binary value is 00000000, all current sources are off. When the binary value is 00000001, only one of the current sources, source 28, is on. The current through line 14 is i. When the binary value is 00000010, two of the current sources, sources 28, 22, are on. The current through line 14 is 2i. For 00000011, three sources 28, 22, 20 are on, and the current output is 3i. The maximum current, 255i, is output when all 255 sources 28, 22, 20 . . . 24, 26 are turned on.
Such a DAC is known as an 8-bit DAC, since it converts an 8-bit binary input into a current that varies in steps of 1/255.sup.th of the output range. The current sources must be carefully matched to produce the same output current i, which is a very small current. Otherwise, the output can be non-linear with distortions.
Sometimes a higher precision is required, such as for a higher-resolution or high-color display. The current and voltage range of the DAC can be doubled by doubling the number of current sources. FIG. 2 shows a common 9-bit DAC. A 9-bit binary value is decoded into 511 signals by decoder 30. The 511 signals from decoder 30 are output on bus 38 to 511 current sources.
The 511 signals from bus 38 control 511 current sources 28, 22, 20, . . . 24, 26, . . . 34, 36. Each current source adds a current i to output line 14. The total current output on line 14 varies from zero to 511i in increments of i.
The higher precision 9-bit DAC requires twice as many current sources as does the 8-bit DAC, even though the input value increased by just one binary bit. Complexity of the DAC increases significantly when precision is increased by just one binary input bit.
Variable-Precision DAC Needed--FIG. 3
FIG. 3 highlights an application that could benefit from a variable-precision DAC. As features are added to personal computers (PCs), the hardware must be able to meet new demands. One feature being added to PCs is the ability to drive television monitors as well as CRT monitors. CRT monitors use computer-display standards such as VGA and SVGA. Television monitors use entirely different standards, such as the National Television Standards Committee (NTSC) format or the Phase-Alternating-Line (PAL) format.
Not only are different horizontal and vertical frequencies used for SVGA and NTSC, but voltage ranges also differ. NTSC requires a wider voltage range than SVGA.
Pixels generated by the PC may be displayed on either SVGA monitor 102 or NTSC TV monitor 104. While SVGA monitor 102 requires a voltage range of V, NTSC TV monitor 104 requires a larger voltage range, up to 2V. Even when the NTSC voltage range is less than 2V, but above V, an additional (9.sup.th) input bit is used for NTSC pixels.
An 8-bit DAC can be used to drive SVGA monitor 102, while a separate 9-bit DAC is used to drive NTSC TV monitor 104. Although this is the most simple approach, the redundancy in DACs is undesirable. Instead, a variable DAC 100 is desirable. Such a variable DAC 100 would operate as an 8-bit DAC outputting a voltage range V when driving SVGA monitor 102, but change modes to operate as a 9-bit DAC outputting a voltage range 2V when driving NTSC TV monitor 104.
Some programmable or weighted DACs are known. See for example U.S. Pat. No. 5,570,090 by Cummins, assigned to Analog Devices Inc., and U.S. Pat. No. 4,482,887 by Crauwels, assigned to IBM Corp.
What is desired is a variable or programmable DAC. It is desired to operate the DAC with an 8-bit input for driving a SVGA monitor, but operate the DAC with a 9-bit input for driving a NTSC TV monitor. It is desired to operate the DAC with a wider output-voltage range for NTSC mode than for SVGA mode. A multi-mode DAC is desired.